package com.zzx.springmvc;

import org.springframework.lang.Nullable;
import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;

/**
 * @Description
 * @ClassName SpringWebAppInitializer
 * @Author Alex
 * @Date 2019年2月18日17:20:26
 * @Version 1.0
 */
public class SpringWebAppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {

    /**
     * 加载其他bean，通常是驱动应用后端的中间层和数据层组件
     *
     * @return
     */
    @Nullable
    @Override
    protected Class<?>[] getRootConfigClasses() {
        return new Class<?>[]{RootConfig.class};
    }

    /**
     * DispatcherServlet 指定配置类，加载包含web组件的bean，如控制器、视图解析器以及处理器的映射
     *
     * @return
     */
    @Nullable
    @Override
    protected Class<?>[] getServletConfigClasses() {
        return new Class<?>[]{WebConfig.class};
    }

    /**
     * 将 DispatcherServlet 映射到“/”
     *
     * @return
     */
    @Override
    protected String[] getServletMappings() {
        return new String[]{"/"};
    }
}
